﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Linq;

namespace mesoBoard.Data.Repositories
{
    public class FileTypeRepository : IFileTypeRepository
    {
        private mbEntities db;

        public FileTypeRepository(mbEntities mbDataContext)
        {
            this.db = mbDataContext;
        }

        public void CreateFileType(FileType ft)
        {
            db.FileTypes.AddObject(ft);
            db.SaveChanges();
        }

        public void DeleteFileType(int FileTypeID)
        {
            db.FileTypes.DeleteObject(GetFileType(FileTypeID));
            db.SaveChanges();
        }

        public FileType GetFileType(int FileTypeID)
        {
            return db.FileTypes.FirstOrDefault(x => x.FileTypeID == FileTypeID);
        }

        public FileType GetFileType(string Extension)
        {
            return db.FileTypes.FirstOrDefault(x => x.Extension.ToLower() == Extension.ToLower());
        }

        public bool IsAllowedFileType(string Extension)
        {
            return GetFileType(Extension) == null ? false : true;
        }

        public IEnumerable<FileType> GetFileTypes()
        {
            return db.FileTypes.AsEnumerable();
        }

        public void SaveFileType(FileType TheFileType)
        {
            if (TheFileType.EntityKey == null)
                TheFileType.EntityKey = ((FileType)db.GetObjectByKey(new System.Data.EntityKey("mbEntities.FileTypes", "FileTypeID", TheFileType.FileTypeID))).EntityKey;

            db.FileTypes.ApplyCurrentValues(TheFileType);
            db.SaveChanges();
        }
    }
}
